apache配置防盗链

        如果站点是一个图片站,有很多非常漂亮的美女图片,时间久了会有很多人来网站借图片,有的直接下载走了,还有的直接取走图片的地址,那么他就可以直接把图片地址放到他自己的网站上,他的用户可以直接从他的网站上查看这个图片,而实际上浏览这个图片是从我的网站上访问的。这样,这个图片所产生的宽带开销对我来说没有任何意义,毕竟看图片的人不是我的客户,而是人家的。所以我们要把这些图片限制一下,凡是在第三方站点上,严禁访问我站点的图片。

1
2
3
4
5
6
7
8
9
10
[root@lamp ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
SetEnvIfNoCase Referer "^http://.*\.test\.com" local_ref
SetEnvIfNoCase Referer ".*\.aaa\.com" local_ref
SetEnvIfNoCase Referer "^$" local_ref
<filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif|png|js|css)">
Order Allow,Deny
Allow from env=local_ref
</filesmatch>

        检测是否有错,并重启apache 服务

1
2
3
[root@lamp ~]# apachectl -t
Syntax OK
[root@lamp ~]# apachectl restart

        说明:在这段配置中涉及到一个名词 referer ,它其实就是上次访问的网站连接。我们是根据来源链接做限制的,如果来源链接并不是想要的,就直接拒绝,这就是防盗链的原理。当然不止是图片,mp3,rar,zip等文件同样支持。